package dynamic;

/**
 * 动态代理测试
 */
public class DynamicProxyTest {
    public static void main(String[] args) {

        /**
         * 需求：
         *      外面的人想要大明星唱一首歌
         *      1. 获取代理的对象
         *          代理对象 = ProxyUtil.createProxy(大明星的对象);
         *      2. 再调用代理的唱歌方法
         *          代理对象.唱歌的方法("只因你太美");
         */
        // 1. 获取代理的对象
        BigStar bigStar = new BigStar("鸡哥");
        Star proxy = ProxyUtil.createProxy(bigStar);

        // 2. 调用唱歌的方法
        String result = proxy.sing("只因你太美");
        System.out.println(result);

        // 3. 调用跳舞歌的方法
        proxy.dance();
        System.out.println(result);
    }
}
